home *** CD-ROM | disk | FTP | other *** search
- /* $Id: $ */
-
-
- /*
- * Original from ThinkCPosix by Timothy Murphy <tim@maths.tcd.ie>,
- * Trinity College Dublin
- *
- * Modified by SPDsoft <macspd@ivo.cps.unizar.es> to use Unix dates
- * seconds from Mac 'Fri Jan 1 00:00:00 1904' to
- * Un*x 'Thu Jan 1 00:00:00 1970': 2082844800
- */
-
- #define U2MSEC 2082844800
-
- #include <utime.h>
- #include <errno.h>
-
- /*
- * Stupid CodeWarrior 1.0a1s does not defines these
- */
-
- #ifndef EACCES
- #define EACCES (-54)
- #endif
- #ifndef ENOENT
- #define ENOENT (-43)
- #endif
-
- int utime (char *filename,struct utimbuf *times)
- {
- CInfoPBRec cipbr;
- HFileInfo *fpb = (HFileInfo*)&cipbr;
- DirInfo *dpb = (DirInfo*)&cipbr;
- unsigned char pname[256];
- short err;
-
- strcpy((char*)pname, filename);
- c2pstr((char*)pname);
-
- dpb->ioDrDirID = 0L;
- fpb->ioNamePtr = pname;
- fpb->ioVRefNum = 0;
- fpb->ioFDirIndex = 0;
- fpb->ioFVersNum = 0;
- err = PBGetCatInfo(&cipbr, FALSE);
- if (err != noErr) {
- errno = ENOENT;
- return -1;
- }
- dpb->ioDrDirID = 0L;
- fpb->ioFlMdDat = times->modtime + U2MSEC;
- fpb->ioFlCrDat = times->actime + U2MSEC;
- err = PBSetCatInfo(&cipbr, FALSE);
- if (err != noErr) {
- errno = EACCES;
- return -1;
- }
- return 0;
- }
-
-